前面幾天提到物件導向範型以及基礎的UML圖,相信大家應該對物件導向有基本的認識了,所以話說回來,為什麼我們要學習設計模式(Design Pattern)呢?
我們先看看這個門 ▼
接著再看看這個門 ▼
從一般視角來看,這兩種門廊結構不同,第一種門廊的目的可能是作為走道和前門的過渡,而第二種門廊可能是提供了在天氣熱時有陰涼處能躲避太陽,或者下雨時能擋雨,但如果以門廊的用意來說,這兩種都是作為「區分出入口」來使用的,只是結構上的不同。
也就是說,觀察解決相似問題的不同結構,可以縮小關注範圍,進而看清優秀設計之間的相似之處,在書中有位名為 Alexander 的建築師,稱這種相似之處為「模式」,他對模式的定義為:
每個模式都描述了一個在我們的環境中會不斷重複出現的問題,並進而敘述了這個問題解決方案的要素,透過這種方式,解決方案能夠百萬次地反覆應用,但是具體方式又不會完全相同。
Alexander 也對模式區分了四個定義:
如果以程式的角度來看,學習設計模式的理由就會是:
到目前好像講得差不多了(還沒提到真正的模式就過了五天XD),明天要正式進入主題,介紹第一種的設計模式「Facade」,大家明天見囉~